import { ref } from 'vue';
import { DEFAULT_FORM_DATA } from './constants';

/**
 * 菜单表单数据管理组合式函数
 * 管理表单数据的初始化、重置等操作
 */
export function useMenuFormData() {
  // 表单数据
  const formData = ref({ ...DEFAULT_FORM_DATA });

  // 初始表单数据（用于重置）
  const initialFormData = ref({ ...DEFAULT_FORM_DATA });

  // 初始化表单数据
  const initFormData = (data = {}) => {
    const newData = { ...DEFAULT_FORM_DATA, ...data };
    formData.value = newData;
    initialFormData.value = { ...newData };
  };

  // 重置表单数据到初始状态
  const resetFormData = () => {
    formData.value = { ...initialFormData.value };
  };

  // 更新表单数据的某个字段
  const updateFormField = (field, value) => {
    if (formData.value.hasOwnProperty(field)) {
      formData.value[field] = value;
    }
  };

  // 批量更新表单数据
  const updateFormData = (updates) => {
    Object.assign(formData.value, updates);
  };

  return {
    formData,
    initialFormData,
    initFormData,
    resetFormData,
    updateFormField,
    updateFormData,
  };
}
